package com.ytjj.qmyx.supplychain.common.model.response;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@ToString
public class CebOrderResponse implements Serializable {
    /**
     * id
     */
    private Integer id;
    /**
     * 企业系统生成 36 位单证唯一序号（英文
     * 字母大写）。
     */
    private String guid;
    /**
     * 平台订单编号
     */
    private String orderNo;
    /**
     * 订购人的交易平台注册号
     */
    private String buyerRegNo;
    /**
     * 订购人的真实姓名
     */
    private String buyerName;
    /**
     * 订购人电话，海关监管对象的电话，要求实际联系电话
     */
    private String buyerTelephone;
    /**
     * 订购人证件类型:1-身份证，2-其它。限定为身份证，填写“1”。
     */
    private Integer buyerIdType;
    /**
     * 订购人证件号码
     */
    private String buyerIdNumber;
    /**
     * 支付企业代码,支付企业的海关注册登记编号。
     */
    private String payCode;
    /**
     * 支付企业名称,支付企业在海关注册登记的企业名称
     */
    private String payName;
    /**
     * 交易唯一编号（可在央行认可的机构验证）
     */
    private String payTransactionId;
    /**
     * 商品批次号
     */
    private String batchNumbers;
    /**
     * 收货人姓名，必须与电子运单的收货人姓名一致
     */
    private String consignee;
    /**
     * 收货人联系电话，必须与电子运单的收货人电话一致
     */
    private String consigneeTelephone;
    /**
     * 收货地址，必须与电子运单的收货地址一致
     */
    private String consigneeAddress;
    /**
     * 收货人行政区划代码
     */
    private String consigneeDistrict;
    /**
     * 订单备注
     */
    private String note;
    /**
     * 下单时间
     */
    private Date orderTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 核验机构:1-银联 2-网联 3-其他
     */
    private String verDept;

    /**
     * 实际交易金额
     */
    private BigDecimal totalAmount;

    /**
     * 推送海关状态：0未推送；1推送中；2推送成功；3推送失败
     */
    private Integer sendStatus;

    /**
     * 推送海关时间
     */
    private Date sendTime;

    /**
     * 销售端id
     */
    private String shopId;

    /**
     * 用户支付的类型。1-APP 2-PC 3-扫码 4-其他
     */
    private Integer payType;

    /**
     * 交易支付时间(YYYYMMDDhhmmss)
     */
    private Date tradingTime;

    /**
     * 电商平台的对公银行卡号(在支付企业登记的)
     */
    private String recpAccount;

    /**
     * 收款企业名称(电商平台企业全称)
     */
    private String recpName;

    /**
     * 收款企业代码
     */
    private String recpCode;

    /**
     * 海关回执原文
     */
    private String cebOrderReturn;
    /**
     * 支付原始请求
     */
    private String initalRequest;
    /**
     * 支付原始响应
     */
    private String initalResponse;
    /**
     * 回执状态 操作结果（2 电子口岸申报中/3 发送海关成功/4 发送海关失败/100 海关退单/120 海关入库/399 海关审结）,若小于 0 数字表示处理异常回执。
     */
    private String returnStatus;
    /**
     * 回执时间 操作时间(格式:YYYYMMDDhhmmssSSS)
     */
    private String returnTime;
    /**
     * 回执信息 （如:退单原因）
     */
    private String returnInfo;
    /**
     * 订单包含商品列表
     */
    private List<CebOrderGoodsResponse> cebOrderGoodsList;
    public CebOrderResponse() {
    }
}
